package com.demo.java.OD401_450.OD447;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【数的分解(C&D卷)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146327735
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();  // 输入目标整数 n
        int ans = 0;  // 用于记录符合条件的分解数
        List<Integer> result = new ArrayList<>();  // 用于存储当前的分解结果

        int k = 1;  // 连续数列的长度从1开始

        // 遍历可能的连续数列的长度k
        while (n - (k - 1) * k / 2 > 0) {
            // 检查是否存在一个a，使得等式成立
            if ((n - (k - 1) * k / 2) % k == 0) {
                int a1 = (n - (k - 1) * k / 2) / k;  // 计算连续数列的起始数a
                ans++;
                result.clear();  // 清空当前结果
                // 生成连续数列
                for (int i = 0; i < k; i++) {
                    result.add(a1 + i);  // 将连续数列的元素加入结果
                }
                if (ans == 2) {
                    break;  // 只需要最小的两个结果
                }
            }
            k++;  // 尝试下一个连续数列的长度
        }

        // 输出结果
        if (ans > 1) {
            System.out.print(n + "=");  // 输出n等于
            for (int i = 0; i < result.size(); i++) {
                System.out.print(result.get(i));  // 输出当前连续数列
                if (i < result.size() - 1) {
                    System.out.print("+");  // 连接符
                }
            }
        } else {
            System.out.println("N");  // 如果没有找到符合条件的解，输出N
        }
    }
}
